题意:有棵大小为$n$的树,再给出m次询问,每次询问中包含$A,B$两点,我们要找到离$A,B$两点距离相等的点一共有多少个。
需要对$A,B$之间的距离进行分类讨论:
一.如果询问的两个点之间的距离为奇数(或者之间的点为偶数),那么无论怎样,它们之间必然有偶数个点,不可能有点到它们的距离相等。
二.如果询问的两个点之间的距离为偶数时,我们要找到$A,B$之间的中点,这个时候又需要分几个情况
{
$1.A,B$两点到他们的$LCA$的距离不相等(包括$A,B$两点中其中一个点为另一个点的$LCA$的情况),那么我们需要找到$A,B$两点所在链上的中点,中点与它不包含所询问点的子树上的点都是满足条件的点
$2.A,B$两点到他们的$LCA$之间距离相等时,满足条件的点的个数即是整棵树的上节点的总数减去$LCA$包含所询问两点的子树的节点个数
}
三.$A,B$两点重合时,整颗树上的点到这两个点的距离都可以看做相等。
1 |
|